package com.lingz.manager.common.utils;

import com.alibaba.fastjson.JSONObject;
import com.hikvision.artemis.sdk.ArtemisHttpUtil;
import com.hikvision.artemis.sdk.config.ArtemisConfig;

import java.util.HashMap;
import java.util.Map;

/**
 * @auto wx
 * @description 请求 APPkey APPsecret 服务 用于海康服务
 * @date 2021/4/18
 */
public class RequestAuthorizationServiceUtil {

    /**
     * 请根据自己的appKey和appSecret更换static静态块中的三个参数. [1 host]
     * 如果你选择的是和现场环境对接,host要修改为现场环境的ip,https端口默认为443，http端口默认为80.例如10.33.25.22:443 或者10.33.25.22:80
     * appKey和appSecret请按照或得到的appKey和appSecret更改.
     * TODO 调用前先要清楚接口传入的是什么，是传入json就用doPostStringArtemis方法，下载图片doPostStringImgArtemis方法
     */
    static {
        ArtemisConfig.host = "223.82.121.221:442";// 代理API网关nginx服务器ip端口
        ArtemisConfig.appKey = "28297317";// 秘钥appkey
        ArtemisConfig.appSecret = "QBmro0ne5CCK3i0kJDU2";// 秘钥appSecret
//        ArtemisConfig.appKey = "20905104";// 秘钥appkey
//        ArtemisConfig.appSecret = "Kqxmv3nJON83foAgcrWP";// 秘钥appSecret
    }

    /**
     * 能力开放平台的网站路径
     * TODO 路径不用修改，就是/artemis
     */
    private static final String ARTEMIS_PATH = "/artemis";

    /**
     * @param serviceUrl 服务路径  类似 /api/resource/v1/camera/advance/cameraList
     * @param paramStr
     */
    public static JSONObject requestService(String serviceUrl,String paramStr) {


        /**
         * http://10.33.47.50/artemis/api/scpms/v1/eventLogs/searches
         * 根据API文档可以看出来，这是一个POST请求的Rest接口，而且传入的参数值为一个json
         * ArtemisHttpUtil工具类提供了doPostStringArtemis这个函数，一共六个参数在文档里写明其中的意思，因为接口是https，
         * 所以第一个参数path是一个hashmap类型，请put一个key-value，query为传入的参数，body为传入的json数据
         * 传入的contentType为application/json，accept不指定为null
         * header没有额外参数可不传,指定为null
         *
         */
        String getCamsApi = ARTEMIS_PATH + serviceUrl;
        Map<String, String> path = new HashMap<String, String>(2) {
            {
                put("https://", getCamsApi);//根据现场环境部署确认是http还是https
            }
        };

        /*JSONObject jsonBody = new JSONObject();

        jsonBody.put("pageNo", 1);
        jsonBody.put("pageSize", 500);
        jsonBody.put("cameraIndexCodes","a8f74dcf14f846bb95c8dff6684f897e");
        jsonBody.put("cameraName","193GB_IPCamera 01");
        jsonBody.put("encodeDevIndexCode","73c2e4903a4547f8812a26d329802cd0");
        jsonBody.put("regionIndexCode","645f0a62-05ff-4396-a687-944c3f0406d6");
        jsonBody.put("isCascade",0);
        String body = jsonBody.toJSONString();*/

        String result = ArtemisHttpUtil.doPostStringArtemis(path, paramStr, null, null, "application/json", null);// post请求application/json类型参数
        return JSONObject.parseObject(result);
    }

}
